home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / mint / gcc / gcc261c.zoo / objects / Proxy.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-18  |  2.1 KB  |  83 lines

  1. /* Interface for GNU Objective-C proxy for remote objects messaging
  2.    Copyright (C) 1994 Free Software Foundation, Inc.
  3.    
  4.    Written by:  R. Andrew McCallum <mccallum@gnu.ai.mit.edu>
  5.    Date: July 1994
  6.    
  7.    This file is part of the GNU Objective C Class Library.
  8.  
  9.    This library is free software; you can redistribute it and/or
  10.    modify it under the terms of the GNU Library General Public
  11.    License as published by the Free Software Foundation; either
  12.    version 2 of the License, or (at your option) any later version.
  13.    
  14.    This library is distributed in the hope that it will be useful,
  15.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17.    Library General Public License for more details.
  18.    
  19.    You should have received a copy of the GNU Library General Public
  20.    License along with this library; if not, write to the Free
  21.    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  22.    */ 
  23.  
  24. #ifndef __Proxy_h_OBJECTS_INCLUDE
  25. #define __Proxy_h_OBJECTS_INCLUDE
  26.  
  27. #include <objects/stdobjects.h>
  28. #include <objects/Connection.h>
  29. #include <objects/Retaining.h>
  30.  
  31. @class ConnectedCoder;
  32.  
  33. @interface Proxy <Retaining>
  34. {
  35. @public
  36.   struct objc_class *isa;
  37.   unsigned target;
  38.   Connection *connection;
  39.   unsigned retain_count;
  40. #if NeXT_runtime
  41.   coll_cache_ptr _method_types;
  42.   Protocol *protocol;
  43. #endif
  44. }
  45.  
  46. /* xxx Change name to newForTarget:connection: */
  47. + newForRemote: (unsigned)target connection: (Connection*)c;
  48.  
  49. - self;
  50. #if NeXT_runtime
  51. + class;
  52. #else
  53. + (Class*) class;
  54. #endif
  55.  
  56. - invalidateProxy;
  57. - (BOOL) isProxy;
  58. - (unsigned) targetForProxy;
  59. - connectionForProxy;
  60.  
  61. - forward: (SEL)aSel :(arglist_t)frame;
  62.  
  63. - classForConnectedCoder: aRmc;
  64. + (void) encodeObject: anObject withConnectedCoder: aRmc;
  65.  
  66. + newWithCoder: aCoder;
  67. - (void) encodeWithCoder: aCoder;
  68.  
  69. /* Only needed with NeXT runtime. */
  70. - (const char *) selectorTypeForProxy: (SEL)selector; 
  71.  
  72. @end
  73.  
  74. @interface Object (IsProxy)
  75. - (BOOL) isProxy;
  76. @end
  77.  
  78. @interface Protocol (RemoteCoding)
  79. - classForConnectedCoder: aRmc;
  80. @end
  81.  
  82. #endif /* __Proxy_h_OBJECTS_INCLUDE */
  83.